/*
 * Copyright (C) 2021 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.x.component.connectivity;

import android.telephony.SubscriptionInfo;

import java.util.List;

public interface SignalCallback {
    void setWifiIndicators(WifiIndicators wifiIndicators);

    void setMobileDataIndicators(MobileDataIndicators mobileDataIndicators);

    void setSubs(List<SubscriptionInfo> subs);

    void setNoSims(boolean show, boolean simDetected);

    void setEthernetIndicators(IconState icon);

    void setIsAirplaneMode(IconState icon);

    void setMobileDataEnabled(boolean enabled);

    void setConnectivityStatus(boolean noDefaultNetwork, boolean noValidatedNetwork, boolean noNetworksAvailable);

    void setCallIndicator(IconState statusIcon, int subId);
}

//class WifiIndicators {
//    public final boolean enabled;
//    public final IconState statusIcon;
//    public final IconState qsIcon;
//    public final boolean activityIn;
//    public final boolean activityOut;
//    public final String description;
//    public final boolean isTransient;
//    public final String statusLabel;
//    public final WifiState wifiState;
//
//    public WifiIndicators(boolean enabled, IconState statusIcon, IconState qsIcon, boolean activityIn, boolean activityOut, String description, boolean isTransient, String statusLabel,WifiState wifiState) {
//        this.enabled = enabled;
//        this.statusIcon = statusIcon;
//        this.qsIcon = qsIcon;
//        this.activityIn = activityIn;
//        this.activityOut = activityOut;
//        this.description = description;
//        this.isTransient = isTransient;
//        this.statusLabel = statusLabel;
//        this.wifiState = wifiState;
//    }
//
//    @Override
//    public String toString() {
//        return new StringBuilder("WifiIndicators[")
//                .append("enabled=").append(enabled)
//                .append(",statusIcon=").append(statusIcon != null ? statusIcon.toString() : "")
//                .append(",qsIcon=").append(qsIcon != null ? qsIcon.toString() : "")
//                .append(",activityIn=").append(activityIn)
//                .append(",activityOut=").append(activityOut)
//                .append(",qsDescription=").append(description)
//                .append(",isTransient=").append(isTransient)
//                .append(",statusLabel=").append(statusLabel)
//                .append(']').toString();
//    }
//}

//class MobileDataIndicators {
//    public final IconState statusIcon;
//    public final IconState qsIcon;
//    public final int statusType;
//    public final int qsType;
//    public final boolean activityIn;
//    public final boolean activityOut;
//    public final int volteIcon;
//    public final CharSequence typeContentDescription;
//    public final CharSequence typeContentDescriptionHtml;
//    public final CharSequence qsDescription;
//    public final int subId;
//    public final boolean roaming;
//    public final boolean showTriangle;
//    public final MobileState mobileState;
//
//    public MobileDataIndicators(IconState statusIcon, IconState qsIcon, int statusType, int qsType, boolean activityIn, boolean activityOut, int volteIcon, CharSequence typeContentDescription, CharSequence typeContentDescriptionHtml, CharSequence qsDescription, int subId, boolean roaming, boolean showTriangle,MobileState mobileState) {
//        this.statusIcon = statusIcon;
//        this.qsIcon = qsIcon;
//        this.statusType = statusType;
//        this.qsType = qsType;
//        this.activityIn = activityIn;
//        this.activityOut = activityOut;
//        this.volteIcon = volteIcon;
//        this.typeContentDescription = typeContentDescription;
//        this.typeContentDescriptionHtml = typeContentDescriptionHtml;
//        this.qsDescription = qsDescription;
//        this.subId = subId;
//        this.roaming = roaming;
//        this.showTriangle = showTriangle;
//        this.mobileState = mobileState;
//    }
//
//    @Override
//    public String toString() {
//        return new StringBuilder("MobileDataIndicators[")
//                .append("statusIcon=").append(statusIcon != null ? statusIcon.toString() : "")
//                .append(",qsIcon=").append(qsIcon != null ? qsIcon.toString() : "")
//                .append(",statusType=").append(statusType)
//                .append(",qsType=").append(qsType)
//                .append(",activityIn=").append(activityIn)
//                .append(",activityOut=").append(activityOut)
//                .append(",volteIcon=").append(volteIcon)
//                .append(",typeContentDescription=").append(typeContentDescription)
//                .append(",typeContentDescriptionHtml=").append(typeContentDescriptionHtml)
//                .append(",description=").append(qsDescription)
//                .append(",subId=").append(subId)
//                .append(",roaming=").append(roaming)
//                .append(",showTriangle=").append(showTriangle)
//                .append(']').toString();
//    }
//}

//class IconState {
//    public final boolean visible;
//    public final int icon;
//    public final String contentDescription;
//
//    public IconState(boolean visible, int icon, String contentDescription) {
//        this.visible = visible;
//        this.icon = icon;
//        this.contentDescription = contentDescription;
//    }
//
//    @Override
//    public String toString() {
//        return new StringBuilder()
//                .append("[visible=").append(visible).append(',')
//                .append("icon=").append(icon).append(',')
//                .append("contentDescription=").append(contentDescription).append(']')
//                .toString();
//    }
//}
